1 /***
2 *
3 */
4 package ar.com.epere4.util.lang;
5
6 import java.util.Calendar;
7 import java.util.Date;
8
9 /***
10 * A class with some utils for Java data types.
11 *
12 * @author epere4
13 * @since 20/02/2006
14 */
15 public final class Types {
16
17 /***
18 * Do not allow instances.
19 *
20 * @since 20/02/2006
21 */
22 private Types() {
23
24 }
25
26 /***
27 *
28 * @param obj
29 * the object to evaluate.
30 * @return true if the object is an instance of one of the natural java
31 * types: {@link Number}, {@link String}, {@link Date},
32 * {@link Calendar}, {@link Boolean} or {@link Character}.
33 * @since 20/02/2006
34 */
35 public static boolean isNaturalJavaObject(final Object obj) {
36 return obj instanceof Number || obj instanceof String
37 || obj instanceof Date || obj instanceof Calendar
38 || obj instanceof Boolean || obj instanceof Character;
39 }
40
41 /***
42 *
43 * @param clazz
44 * the class to evaluate.
45 * @return true if the clazz is the same or a subclass of one of the natural
46 * java types: {@link Number}, {@link String}, {@link Date},
47 * {@link Calendar}, {@link Boolean} or {@link Character}.
48 * @since 20/02/2006
49 */
50 public static boolean isNaturalJavaClass(final Class clazz) {
51 return Number.class.isAssignableFrom(clazz)
52 || String.class.isAssignableFrom(clazz)
53 || Date.class.isAssignableFrom(clazz)
54 || Calendar.class.isAssignableFrom(clazz)
55 || Boolean.class.isAssignableFrom(clazz)
56 || Character.class.isAssignableFrom(clazz);
57 }
58
59 /***
60 * @param clazz
61 * the class to be evaluated.
62 * @return true if the clazz represents any of the primitive java data
63 * types, except void.
64 * @see Class#isPrimitive()
65 * @since 20/02/2006
66 */
67 public static boolean isNativeJavaPrimitive(final Class clazz) {
68 return clazz.isPrimitive() && !clazz.equals(Void.TYPE);
69 }
70 }